Companies today are tasked with implementing solutions for many types of integration challenges within their respective enterprises. Many of these challenges involve issues of application integration (e.g., integration among and/or between software applications and/or other systems) and fall into common patterns.
Although various techniques have been somewhat successful in providing solutions to these challenge areas, further enhancements are still possible. For example, a number of vendors provide certain business activity monitoring (BAM), business process management (BPM), and/or other related products as part of their application suites. Example backend systems include SAP, Oracle, and others. Typically, the products provided by these vendors can only “see” and control their own domains. Thus, to the extent that these vendors provide a process engine to orchestrate the services that are offered, such conventional process engines are restricted to operation within the respective limited domains. Accordingly, when a plurality of resources are provided and are to be integrated (e.g., during application integration), the individual process engines belonging to the resources generally do not know exactly what other activities, events, etc., are occurring in other resources and cannot monitor/manage them because they exist within “closed” systems. Similarly, a user trying to integrate the disparate resources cannot always monitor/manage the activities, events, etc., in a desired and/or necessary manner—even though the user has at least some general knowledge that various activities, events, etc., are taking place.
Currently, there are no known prior art techniques that enable a process engine to monitor/manage activities hosted on an external resource. In fact, to the extent that the prior art approaches can be modified to approximate the features, aspects, and advantages of the example embodiments described herein, such prior art systems would require alterations to the underlying external resource to manually establish an integrative linkage from the resource to the remote processing engine. For some vendors, additional functionality typically must be deployed from a would-be orchestrating process engine directly into the resource itself. This typically requires an alteration to existing application logic in the external resource, which might be cumbersome and/or even impossible.
Thus, it will be appreciated that there is a need in the art to provide monitoring and/or management capabilities across platforms in the application integration context.
One aspect of certain example embodiments relates to providing end-to-end business process management (BPM), business event management (BEM), business activity monitoring (BAM), and/or the like.
Another aspect of certain example embodiments relates to providing a process management agent (PMA) that acts as an interface between a central process engine and external (e.g., third-party) resources. One or many actual PMAs and/or PMA instances may be provided in this regard.
A further aspect of certain example embodiments relates to providing monitoring and/or management capabilities across platforms via a process engine.
Yet another aspect of certain example embodiments relates to using a PMA manage and/or monitor aspects of business process in a transparent manner.
It will be appreciated that the example embodiments described herein function at the “business process level.” In other words, it will be appreciated that the example embodiments described herein are concerned with activities, events, and/or other like features that exist at the business process layer. In this regard, certain example embodiments are premised on the idea that if activities, events, and/or the like are known, programmed logic circuitry can “listen” for the same and report them back to an orchestrating, monitoring, and/or otherwise functioning process engine. As such, it will be appreciated that certain example embodiments have design time and runtime components. For instance, certain example embodiments enable a user, at design time, to cause a resource to behave in a known manner, e.g., by reporting aspects of its functioning, so that a process engine and any necessary adapters can, at runtime, provide end-to-end monitoring and/or management of the integrated application.
In certain example embodiments of this invention, a method is provided in an application integration system for managing and/or monitoring a business process comprising a plurality of activities, events, and/or objects located in one or more resources external to the application integration system and a process engine thereof. During design time, business object types of the activities, events, and/or objects of the at least one resource are introspected. Potential state changes for the business object types are identified. Business object type state change to receiver couplings are established via a process monitoring agent in communication with the at least one resource and the process engine. During runtime, the process monitoring agent is caused to listen to the business object state changes in the at least one resource through an adapter. When a business object state change is detected by the process monitoring agent, the process monitoring agent is caused to notify the local process engine of the detected business object state change by producing a document processable by the process engine in accordance with an appropriate coupling.
In certain example embodiments of this invention, a method of configuring an application integration system for end-to-end business process management, business event management, and/or business activity monitoring, is provided. A connection between a process engine and at least one resource external to the process engine is established. The at least one resource includes at least one activity, event, or object useful in modeling a business process that is representable as an event at the process engine. At least one business object type of one said activity, event, or object is identified. A business object type is selected for further introspection. The selected business object type is introspected to identify a state change thereof. A selected state change of the selected business object type is introspected to identify business object state change properties. A matching local document type suitable for processing by the process engine corresponding to the selected state change of the selected business object type is created. A coupling is established for the selected state change of the selected business object type via the process monitoring agent. A receiver is assigned for the coupling, with the receiver being connected to the process monitoring agent such that the receiver is configured to trigger a notification according to the matching local document type in the application integration system. A matching adapter notification is generated. The matching adapter notification is enabled. The adapter notification is added as an event in the process model. The process model is deployed to the process engine such that the process engine is configured to listen to state changes from the at least one remote resource in managing and/or monitoring the business process.
In certain example embodiments of this invention, a method of operating an application integration system for end-to-end business process management, business event management, and/or business activity monitoring is provided. The application integration system is configured as described above. Additionally, an indication of a state change of an activity at the process monitoring agent is received in accordance with a pre-defined coupling. An event container of the indication is analyzed, and a corresponding adapter notification is selected. The event container is transformed into a document of a document type processable by the process engine. The document is forwarded to the process engine in managing and/or monitoring the business process.
It will be appreciated that certain example embodiments relate to corresponding systems that help implement the above-described methods of certain example embodiments.
These aspects and example embodiments may be used separately and/or applied in various combinations to achieve yet further embodiments of this invention.